package org.massi.imslp.query;

/**
 * Implementation of {@link IComposerWork}
 */
public class ComposerWork implements IComposerWork, IWorkInfo
{

	/**
	 * specific work information
	 */
	private final IWorkInfo info;

	/**
	 * composer name
	 */
	private final String composer;


	/**
	 * Constructor with work information and composer
	 * 
	 * @param info
	 * @param composer
	 */
	public ComposerWork(final IWorkInfo info, final String composer)
	{
		super();
		this.info = info;
		this.composer = composer;
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getScore()
	 */
	@Override
	public String getScore()
	{
		return this.info.getScore();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getDateOfComposition()
	 */
	@Override
	public String getDateOfComposition()
	{
		return this.info.getDateOfComposition();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getKey()
	 */
	@Override
	public String getKey()
	{
		return this.info.getKey();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getOpusNumber()
	 */
	@Override
	public String getOpusNumber()
	{
		return this.info.getOpusNumber();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IComposerWork#getComposer()
	 */
	@Override
	public String getComposer()
	{
		return this.composer;
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getStyle()
	 */
	@Override
	public String getStyle()
	{
		return this.info.getStyle();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getDateOfPublication()
	 */
	@Override
	public String getDateOfPublication()
	{
		return this.info.getDateOfPublication();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getComments()
	 */
	@Override
	public String getComments()
	{
		return this.info.getComments();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see org.massi.imslp.query.IWorkInfo#getDedication()
	 */
	@Override
	public String getDedication()
	{
		return this.info.getDedication();
	}


	@Override
	public String getTitle()
	{
		return this.info.getTitle();
	}


	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString()
	{
		return "ComposerWork [info=" + this.info + ", composer=" + this.composer + "]";
	}


}
